package com.etone.smartAudit.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.etone.smartAudit.enums.CheckState;
import com.etone.smartAudit.enums.StateType;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author: 蒋学伟
 * @create: 2020-07-16 10:07:40
 * @Description 项目
 */
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
@TableName(value = "f_item")
public class Item implements Serializable {

    @TableId(type = IdType.AUTO, value = "intId")
    private Integer id;

    /**
     * 项目名称
     */
    @TableField("vcName")
    private String name;

    /**
     * 项目缩写
     */
    @TableField("vcNameAbbreviation")
    private String nameAbbreviation;

    /**
     * 项目类型
     */
    @TableField("vcType")
    private String type;

    /**
     * 项目类型
     */
    @TableField("intTypeId")
    private Integer typeId;

    /**
     * 事务所id
     */
    @TableField("intOfficeId")
    private Integer officeId;

    /**
     * 事务所名称
     */
    @TableField("vcOfficeName")
    private String officeName;

    /**
     * 负责人名称
     */
    @TableField("vcLeaderAdminName")
    private String leaderAdminName;

    /**
     * 负责人id
     */
    @TableField("intLeaderAdminId")
    private Integer leaderAdminId;

    /**
     * 项目成员
     */
    @TableField(exist = false)
    private List<ItemMember> itemMembers;

    /**
     * 项目概述
     */
    @TableField("vcRemark")
    private String remark;

    /**
     * 创建人id
     */
    @TableField("intCreateAdminId")
    private Integer createAdminId;

    /**
     * 创建人名称
     */
    @TableField("vcCreateAdminName")
    private String createAdminName;

    /**
     * 创建时间
     */
    @TableField("dtCreateTime")
    private Date createTime;

    /**
     * 审核状态
     */
    @TableField("vcCheckState")
    private CheckState checkState;

    /**
     * 状态
     */
    @TableField("vcState")
    private StateType state;

    /**
     * 是否正在初次申请
     */
    @TableField("isFirstApply")
    private Boolean isFirstApply;

    /**
     * 是否正在扩容
     */
    @TableField("isExpansion")
    private Boolean isExpansion;

    /**
     * 初次资源申请是否完成
     */
    @TableField("isFirstApplyOver")
    private Boolean isFirstApplyOver;

    /**
     * 预计完成时间
     */
    @TableField("dtExpectOverTime")
    private Date expectOverTime;

    @TableField(exist = false)
    @ApiModelProperty("公司|事务所名称")
    private String companyName;

    @TableField(exist = false)
    @ApiModelProperty("公司|事务所id")
    private String companyId;
}
